/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.intime.model.dao;

import java.io.Serializable;
import java.util.List;
import org.hibernate.criterion.DetachedCriteria;

/**
 * Interface que é usada para a conexão dos
 * dao com a base de dados.
 * 
 * @version 1.0
 * @author Valdigleis
 */
public interface InterfaceDao<T> {
    
    void save(T entity);
    void update(T entity);
    void remove(T entity);
    void merge(T entity);
    
    T getEntity(Serializable id);
    T getEntityByDetachedCriteria(DetachedCriteria criteria);
    List<T> getEntities();
    List<T> getEntitiesByDetachedCriteria(DetachedCriteria criteria);
    
}
